

/**
 * 该类包含了资源的相对虚拟地址（RVA）、数据大小、代码页和保留字段等属性。
 * @author tongxin
 * @date 2024/4/21 13:20
 */
export class ResourceDataEntry {

  /**
   * 定义了资源信息长度，这里固定为16。
   */
  static LENGTH = 16 as const;
  /**
   * 资源的相对虚拟地址（RVA），指向资源数据在可执行文件中的位置。
   */
  dataRva: number;

  /**
   * 资源数据的大小，以字节为单位。
   */
  dataSize: number;

  /**
   * 资源使用的代码页，用于指定资源的编码格式。
   */
  codePage: number;

  /**
   * 保留字段，供将来使用或实现特定用途。
   */
  reserved: number;


  constructor(byteArray: IByteArray) {
    this.dataRva = byteArray.readDWord();
    this.dataSize = byteArray.readDWord();
    this.codePage = byteArray.readDWord();
    this.reserved = byteArray.readDWord();
  }
}
